#ifndef ZIGBUSADDRESSINGTYPE_H
#define ZIGBUSADDRESSINGTYPE_H

#include "ZigbusItem.h"

#define ADDRESSING_TYPE_SIZE 1
#define ADDR_TYPE_DIRECT 0x00
#define ADDR_TYPE_GROUP 0x01

class ZigbusAddressingType : public ZigbusItem
{
public:
    ZigbusAddressingType();
    ZigbusAddressingType(int value);
    ZigbusAddressingType(const QString& str);
    ZigbusAddressingType(const ZigbusAddressingType& other);
    virtual ~ZigbusAddressingType() { }
    static ZigbusAddressingType ADDR_DIRECT() { return ZigbusAddressingType(ADDR_TYPE_DIRECT); }
    static ZigbusAddressingType ADDR_GROUP() { return ZigbusAddressingType(ADDR_TYPE_GROUP); }
    virtual QString text() const;
    virtual QString type() const { return "addressing_type"; }
    static ZigbusAddressingType INVALID() { return ZigbusAddressingType(-1); }
};

#endif // ZIGBUSADDRESSINGTYPE_H
